package com.eatrip.bean;

import java.io.Serializable;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;


@Entity
@Table(name = "dati_locale")
public class DatiLocale implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 5602220753661202105L;
	
	@Id
	@Column(name = "id_locale")
	@GeneratedValue
	private int idLocale;
	
	@Column(name = "email")
	private String email;
	
	@OneToOne
	@JoinColumn(name = "comune_id")
	private Comune comune;
	
	@Column(name = "nome_locale")
	private String nomeLocale;
	
	@Column(name = "descrizione")
	private String descrizione;
	
	@OneToOne(cascade = CascadeType.REMOVE)
	@JoinColumn(name = "tipo_locale")
	private TipoLocale tipoLocale;
	
	@Column(name = "indirizzo")
	private String indirizzo;
	
	@Column(name = "telefono")
	private String telefono;
	
	@Column(name = "sito_web")
	private String sitoWeb;
	
	@OneToOne(cascade = CascadeType.REMOVE)
	@JoinColumn(name = "chiusura_settimanale")
	private Giorni chiusuraSettimanale;
	
	@OneToOne(cascade = CascadeType.REMOVE)
	@JoinColumn(name = "fascia_prezzo")
	private FasciaPrezzo fasciaPrezzo;
	
	@OneToOne(cascade = CascadeType.REMOVE)
	@PrimaryKeyJoinColumn
	private DettagliLocale dettagliLocale;
	
	@OneToMany(fetch = FetchType.EAGER)
	private Set<FotoLocale> fotoLocale; 
	
	@OneToMany(fetch = FetchType.EAGER, mappedBy = "datiLocale")
	private Set<Ricetta> ricetta;
	
	/*
	@OneToMany(fetch = FetchType.EAGER, mappedBy = "commento")
	private Set<Commento> commenti;
	*/
	public Set<Ricetta> getRicetta() {
		return ricetta;
	}
	public void setRicetta(Set<Ricetta> ricetta) {
		this.ricetta = ricetta;
	}
	public Set<FotoLocale> getFotoLocale() {
		return fotoLocale;
	}
	public void setFotoLocale(Set<FotoLocale> fotoLocale) {
		this.fotoLocale = fotoLocale;
	}
	
	public DettagliLocale getDettagliLocale() {
		return dettagliLocale;
	}
	public void setDettagliLocale(DettagliLocale dettagliLocale) {
		this.dettagliLocale = dettagliLocale;
	}
	
	public Comune getComune() {
		return comune;
	}
	public void setComune(Comune comune) {
		this.comune = comune;
	}
	public int getIdLocale() {
		return idLocale;
	}
	public void setIdLocale(int idLocale) {
		this.idLocale = idLocale;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	
	public String getNomeLocale() {
		return nomeLocale;
	}
	public void setNomeLocale(String nomeLocale) {
		this.nomeLocale = nomeLocale;
	}
	
	public String getDescrizione() {
		return descrizione;
	}
	public void setDescrizione(String descrizione) {
		this.descrizione = descrizione;
	}
	public TipoLocale getTipoLocale() {
		return tipoLocale;
	}
	public void setTipoLocale(TipoLocale tipoLocale) {
		this.tipoLocale = tipoLocale;
	}
	public String getIndirizzo() {
		return indirizzo;
	}
	public void setIndirizzo(String indirizzo) {
		this.indirizzo = indirizzo;
	}
	public String getTelefono() {
		return telefono;
	}
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
	public String getSitoWeb() {
		return sitoWeb;
	}
	public void setSitoWeb(String sitoWeb) {
		this.sitoWeb = sitoWeb;
	}
	
	public Giorni getChiusuraSettimanale() {
		return chiusuraSettimanale;
	}
	
	public void setChiusuraSettimanale(Giorni chiusuraSettimanale) {
		this.chiusuraSettimanale = chiusuraSettimanale;
	}
	public FasciaPrezzo getFasciaPrezzo() {
		return fasciaPrezzo;
	}
	public void setFasciaPrezzo(FasciaPrezzo fasciaPrezzo) {
		this.fasciaPrezzo = fasciaPrezzo;
	}
	@Override
	public String toString() {
		return "DatiLocale [idLocale=" + idLocale + ", email=" + email
				+ ", nomeLocale=" + nomeLocale + ", descrizione=" + descrizione
				+ ", tipoLocale=" + tipoLocale + ", indirizzo=" + indirizzo
				+ ", telefono=" + telefono + ", sitoWeb=" + sitoWeb
				+ ", chiusuraSettimanale=" + chiusuraSettimanale
				+ ", fasciaPrezzo=" + fasciaPrezzo + "]";
	}
	
	
	
}
